package com.qingzhi.spring.demo.controller;


import com.qingzhi.spring.demo.model.MessageInfo;
import com.qingzhi.spring.demo.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RequestMapping("/message")
@RestController
public class MessageController {
    @Autowired
    private MessageService messageService;

    private List<MessageInfo> messageList = new ArrayList<>();

    // 发表新的留言并且对其进行保存
    // 我们返回的是需要是一个json，这个返回的是String，这个可以在后端进行处理或者在前端进行处理
    //后端处理：
    //@RequestMapping(value = "/publish",produces = "application/json")
    //前端处理：
    @RequestMapping("/publish")
    // 使用请求的 JSON 格式进行接收，就是在请求的body中，使用 @RequestBody 标签
    public String publish(@RequestBody MessageInfo messageInfo) {
        //先对其进行判断
        if (!StringUtils.hasLength(messageInfo.getFrom()) ||
             !StringUtils.hasLength(messageInfo.getTo()) ||
                !StringUtils.hasLength(messageInfo.getMessage())) {
            //为null
            return "{\"ok\": 0}";
        }
        messageService.addMessage(messageInfo);

        // 这里是没有问题的，进行储存
//        messageList.add(messageInfo);
        return "{\"ok\": 1}";
    }

    // 返回全部存储的留言
    @RequestMapping("/getList")
    public List<MessageInfo> getList() {
        return messageService.getList();
    }

}
